﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;

namespace IkeCode.WP7.HQReader.Interfaces
{
    /// <summary>
    /// Interface that contains Feed Publisher contract
    /// </summary>
    public interface IFeedPublisherDataService
    {
        /// <summary>
        /// Get a list of Publishers
        /// </summary>
        /// <param name="callback">Callback with result or Exception object in error case</param>
        void GetPublishers(Action<List<IIcFeedPublisher>, Exception> callback);

        /// <summary>
        /// Save Publisher to Isolated Storage
        /// </summary>
        /// <param name="publisher">Publisher object</param>
        /// <param name="callback">Callback with same Publisher object or Exception object in error case</param>
        void PostPublisher(IIcFeedPublisher publisher, Action<IIcFeedPublisher, Exception> callback);

        /// <summary>
        /// Remove publisher from cache/isf
        /// </summary>
        /// <param name="publisher">Publisher to rmeove</param>
        /// <param name="callback">action to callback, returns boolean</param>
        /// <param name="showConfirmation">Show confirmation message flag</param>
        void DeletePublisher(IIcFeedPublisher publisher, Action<bool, Exception> callback, bool showConfirmation = false);
    }
}
